Method and system for efficient use of address resources within an automated communications system

ABSTRACT

Embodiments of the present invention are directed to automated systems for organizing and facilitating information exchange between members of an organization. Automated systems that represent embodiments of the present invention allow for creation and administration of hierarchical groupings of members of the organization to facilitate efficient dissemination of information among members of groups. Embodiments of the present invention provide for automated and intelligent routing of information and communications among many different types of communications media and devices through which members of the organization can distribute and exchange information with one another. Embodiments of the present invention additionally provide for sophisticated logging, tracking, and monitoring of information distribution and management within the organization.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of patent application Ser. No. 12/037,846, filed Mar. 1, 2011, which claims the benefit of Provisional Application No. 61/309,317, filed Mar. 1, 2010.

TECHNICAL FIELD

The present invention is related to communications and, in particular, to an automated communications system that allows for flexible and efficient interpersonal communications, through many different types of communications media and communications devices, between members of an organization.

BACKGROUND

Electronic communications has rapidly developed and evolved over the past 150 years. The development of telephonic voice communications in the latter 1800's revolutionized society and communications within organizations, including businesses, commercial offices, and governmental and educational institutions. For many years, the telephone and hand-delivered mail were the primary forms of communications used within organizations. However, with the advent of computer technology, beginning in the 1950's, and with later development and commercialization of mobile telephones and other technologies, a wide array of various types of communications media and devices are now commonly available. These various different types of communications media and devices provide for distribution and exchange of many different types of information to individuals in various geographical locations. As a result, people today have an enormous range of communications capabilities at their disposal with which to communicate with one another. However, because of the number of and variety of different types of communications media and devices, organizing and managing systematic information distribution among the members of an organization is currently a vastly more complex undertaking than in earlier times. While efforts have been undertaken to provide technological bridges between different types of communications media and devices, there are few organization-level communications systems that address the emerging complexities of interpersonal communications within organizations. Individuals, organizations, and designers and manufacturers of communications systems continue to seek new methods and systems for organizing and managing information exchange and distribution within organizations in order to take full advantage of the enormous capabilities of modern communications technologies.

SUMMARY

Embodiments of the present invention are directed to automated systems for organizing and facilitating information exchange between members of an organization. Automated systems that represent embodiments of the present invention allow for creation and administration of hierarchical groupings of members of the organization to facilitate efficient dissemination of information among members of groups. Embodiments of the present invention provide for automated and intelligent routing of information and communications among many different types of communications media and devices through which members of the organization can distribute and exchange information with one another. Embodiments of the present invention additionally provide for sophisticated logging, tracking, and monitoring of information distribution and management within the organization.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-3 illustrate traditional information distribution and information exchange within organizations prior to the revolution in interpersonal communications brought about by the development and commercialization of personal computers, mobile telephones, and other relatively recently emerging technologies.

FIG. 4 illustrates one dimension of the complexities of modern interpersonal communications.

FIG. 5 illustrates, as an example, a time-of-day dimension of intra-organizational communications complexity.

FIG. 6 illustrates additional dimensions of intra-organizational communications complexity.

FIG. 7 shows an example organization chart for a small organization with respect to a particular member of the organization.

FIGS. 8A-B illustrate, at a schematic level, an automated communications system that represents one embodiment of the present invention.

FIG. 9 illustrates certain types of stored data that represent organizations and organizational structures according to one embodiment of the present invention.

FIG. 10 illustrates, in more detail, the mapping of groups into group hierarchies within data stored in a database sub-system of an automated communications system that represents one embodiment of the present invention.

FIG. 11 illustrates hierarchical group structures that may be used to define complex structural features of an organization within data stored in a database sub-system of an automated communications system that represents one embodiment of the present invention.

FIG. 12 illustrates portions of the fundamental data structures stored within the database and database-interface subsystem of an automated communications system that represents one embodiment of the present invention.

FIG. 13 illustrates additional device-type and communications-media information stored by the database and database-interface subsystem of an automated communication system that represents an embodiment of the present invention.

FIG. 14 illustrates a hierarchical group structure for an organization for which intra-organizational communications is provided by an embodiment of the present invention along with an associated addressing scheme that allows users to transmit messages and other information into the automated communications system for distribution by the automated communications system to other members of the organization.

FIGS. 15A-B illustrate two different operational modes for automated communications systems that represent embodiments of the present invention.

FIG. 16 illustrates a typical hardware platform for an automated communications service that represents an embodiment of the present invention.

FIG. 17 illustrates a distributed automated communications system that represents an embodiment of the present invention.

FIG. 18 provides a control-flow diagram for the input-processing subsystem of an automated communications system that represents an embodiment of the present invention.

FIG. 19 provides a control-flow diagram for the routing and message-forwarding subsystem of the system services component of an automated communications system that represents an embodiment of the present invention.

FIG. 20 is a control-flow diagram for the routing routine called in step 1910 of FIG. 19 according to one embodiment of the present invention.

FIG. 21 provides a control-diagram for the post-processing subsystem of an automated communications system that represents one embodiment of the present invention.

FIGS. 22A-B illustrate additional detail regarding message reception by the automated communications system discussed above with reference to FIGS. 1-21 that represents one embodiment of the present invention.

FIGS. 23A-B illustrate possible mappings of communications addresses to users and groups within an automated communications system that represents an embodiment of the present invention.

FIG. 24 illustrates a user, group, and destination-communication-address mapping subsystem of an automated communications system that represents one embodiment of the present invention and that allows for efficient use of destination-communication-address resources.

FIG. 25 provides a control-flow diagram for the address-acquisition and address-return logic component 2408 in FIG. 24 that represents one embodiment of the present invention.

FIG. 26 provides a control-flow diagram for the logic component of the user, group, and destination-communications-address mapping subsystem of an automated communications system, shown as component 2410 in FIG. 24, that represents one embodiment of the present invention.

FIG. 27 provides a control-flow diagram for the assignment logic component 2412 shown in FIG. 24 that represents one embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention arc directed to automated systems for facilitating information distribution and information exchange among members of organizations and to a user, group, and destination-communications-address mapping subsystem within an automated communications system. As mentioned above, automated communications systems of the present invention are motivated by the rapidly increasing complexities of intra-organizational communications resulting from the rapidly evolving personal-communications technologies, from personal-computer-based information exchange to mobile phones and even more recently emerged communications technologies.

Automated Communications Subsystem that Represents One Embodiment of the Present Invention

FIGS. 1-3 illustrate traditional information distribution and information exchange within organizations prior to the revolution in interpersonal communications brought about by the development and commercialization of personal computers, mobile telephones, and other relatively recently emerging technologies. FIG. 1 illustrates 18 members of a small organization, such as a commercial office or business. In FIG. 1, each member of the organization is represented by a rectangular record, such as rectangular record 102 that includes the member's name, shown in FIG. 1 as a pair of initials, the member's phone extension, and the member's mail stop, or intra-organization mail address, including initials “A. J.” 104, phone extension “3901” 106, and mail stop “MS 10/B” 108 for member 102. Prior to development of modern computer systems and other processor-driven communications devices, telephones and hand-delivered mail messages were the primary methods for communication within organizations.

FIG. 2 shows an organizational chart for the organization represented in, and discussed with respect to, FIG. 1. As shown in FIG. 2, the organization includes a president 202, two vice presidents 204 and 206, and four multi-member departments 208-211. In traditional organizations, at the time that telephones and hand-delivered mail were the only practical intra-organization communications methods, the organizational structure was generally relatively static and monolithic. The organizational simplicity and the simplicity in choice of available intra-organizational communications means allowed for relatively efficient information exchange.

FIG. 3 illustrates several different information-distribution scenarios in the traditional organization described with reference to FIGS. 1 and 2. In a first scenario, the president 302 (202 in FIG. 2) needs to announce a policy change to members of the engineering group 310, 314, 318, and 320 (208 in FIG. 2). The president first decides whether the announcement requires telephone distribution of the information or whether, instead, the announcement can be printed and distributed by hand delivery. Assuming that, as a result of delivery-time considerations, the president elects to distribute the announcement by telephone, the president 302 calls 304 an administrator 306 whom the president directs to distribute the announcement, by telephone, to the engineering group. The administrator 306 next calls 308 the manager of the engineering group 310 who, in turn, calls 312 a senior member of the engineering group 314 and instructs this senior member of the engineering group to inform other members of the engineering group. The senior member of the engineering group 314 then calls 316-317 the remaining members of the engineering group 318 and 320, respectively. In a second scenario, a vice president 330 decides to use telephone messaging to announce quarterly sales figures to the members of the sales division (210 in FIG. 2). The vice president calls 332 the director of the sale division 334 and instructs the director of the sale division to inform the other members of the sales division. The director 334 then calls 336 the lead member 338 of the eastern sales group and instructs the lead member of the eastern sales group to notify the remaining members of the eastern sales group by telephone. The director next calls 340 the only member of the western sales division 342. Meanwhile, the director of the eastern sales division calls 344-345 the remaining members of the eastern sales division 346 and 348, respectively. Unfortunately, the director is unable to reach the member of the western sales division 342 by telephone. Therefore, the director places a call 350 to the administrator 306 to contact the member of the western sales division. The administrator 306 calls 352 an administrative assistant 354 who determines that the sole member of the western sales division is currently traveling, and reachable at a hotel, and then directly calls 356 member 342 at the hotel.

The traditional office communications, discussed above with reference to FIG. 3, work reasonably well due to the simplicity of the structure of the organization as well as the limited choices for communicating with organization members. However, even in this simple example, certain deficiencies can be observed. First, because of the hierarchical nature of the structure of the organization, and because of the one-to-one mode of communications provided by traditional telephone calls, disseminating information within the hierarchical organization structure is accompanied by a hierarchy of individual telephone calls and attendant delays in information transmission. Another deficiency is that, in many cases, one or a very few members, such as the administrator 306, becomes a bottleneck or hub for communications, since the administrator is often the first person called in order to distribute information by telephone. Yet another deficiency is that, when a party cannot be directly reached by telephone, a relatively time-intensive and expensive alternative communications strategy must be employed, such as that represented by telephone calls 350, 352, and 356 in FIG. 3. However, for many years, intra-organization communication generally followed this approach.

By contrast to the traditional organization and traditional communications methods discussed above with reference to FIGS. 1-3, current technologies provide a wealth of different communications capabilities as well as a forest of complexities associated inter-personal communications within an organization. FIG. 4 illustrates one dimension of the complexities of modern interpersonal communications. In FIG. 1, each member of the organization is associated with two communications addresses: a telephone extension and a mail stop. By contrast, consider the number of different communications devices, associated with different communications addresses, available to a particular member of an organization currently, shown in FIG. 4. The company president A. J. 402 may receive information and transmit information through many different communications media and devices, including: (1) a home landline telephone 404; (2) voice communications via a home cell phone 406; (3) text messaging via a home cell phone 408; (4) email via a home computer 410; (5) instant messaging via a home computer 412; (6) voice communications via an office landline telephone 414; (7) voice communications via an office cell phone 416; (8) text messaging via an office cell phone 418; (9) email via an office computer 420; (10) instant messaging via an office computer 422; (11) voice communications via an office mobile-computing device 424; (12) text messaging via an office mobile-computing device 426; (13) instant messaging via an office mobile-computing device 428; (14) email via an office mobile computing-device 430; (15) hand-delivered office mail 432; (16) contacting an office administrative assistant who then contacts the company president by any of various different means shown in FIG. 4 434; (17) contacting a secondary contact for the president, such as the president's husband, by any of various means 436; and (18) home postal delivery 438.

In fact, the various communications media and devices, shown in FIG. 4, may actually be only a subset of the communications media and devices available to the company president. Whereas, in traditional organizations of simpler times, one needed to consider only essentially two different types of communications by which to distribute information to, or exchange information with, a particular member of the organization, in current organizations, there is a bewildering array of different possibilities for communicating with a member of the organization at any particular point in time. Just keeping track of all these different types of communications media and devices and their communications addresses represents a significant problem. However, the large diversity of possibilities for contacting a particular member, when compounded over all of the members of an organization, creates a very difficult problem for anyone seeking to distribute information, since so many different possibilities need to be considered on a member-by-member basis.

There are, however, many more dimensions to the complexity of modern communications than the number and types of communications media and devices through which members of an organization can be reached. FIG. 5 illustrates, as an example, a time-of-day dimension of intra-organizational communications complexity. In FIG. 5, the availability of each of the different communications medium/devices shown in FIG. 4 for the company president is plotted with respect to time of day. In FIG. 5, the time of day is represented by the horizontal axis 502 and the availability for each communications medium/device is plotted along vertical axis 504. Double-headed arrows show the availability of the company president through a particular communications medium/device at each point during the day. For example, the company president can be reached by home landline telephone for a short period in the morning 506 and a somewhat longer period 508 in the evening. By contrast, the president can be reached by office email throughout most of the day 510 and 512, although with delays during late evenings and early mornings, with the exception of a period in the evening 514 during which the company president would be more effectively reached by home telephone, home email, or by other means. Not only does a member of the organization seeking to transmit information to another member of the organization need to consider which communications medium and device or communications media and devices through which to transmit the information, the member of the organization also needs to consider which of the communications media and devices are most appropriate for any particular time of day, particularly when timely receipt of the information by the recipient is important.

However, even the added complexity of time-of-day considerations is relatively slight compared to the overall complexity of current intra-organizational communications. FIG. 6 illustrates additional dimensions of intra-organizational communications complexity. In FIG. 6, each of the various dimensions, or considerations, for transmitting information to one or more members of an organization is represented as a two-dimensional plane, such as the two-dimensional plane 602 representing the time-of-day consideration discussed above with reference to FIG. 5. Similar, complex considerations for selecting a communications medium and device or communications media and devices include considerations with respect to: (1) the date 604; (2) the type of message or communications to be transmitted 606; (3) the presence of, and nature of, any types of attachments to the message, such as photographs, spreadsheet data, and other such attachments 608; (4) the nature of the group of recipients to which the information is to be transmitted 610; (5) various characteristics and parameters associated with the sender of the information 612; (6) the subject matter of the information to be transmitted 614; (7) the native language in which the information is presented 616; (8) the role of the sender with respect to the organization 618; (9) the urgency with which the information needs to be delivered 620; (10) the location of the sender 622; (11) the location of the intended recipient or recipients of the information 624; and (12) many other such considerations, as represented by curved arrow 626. In essence, the choice of which communications medium and device to use to send or exchange information within an organization may be profoundly complicated, and involve a very difficult, hyper-dimensional optimization task. Clearly, no member of an organization can possibly make even near-optimal decisions for choosing communications media and devices for distributing information to a group of members within an organization.

Another aspect of the difficulty of intra-organization communications in current organization environments is the fact that, unlike in traditional organizations, as discussed above with reference to FIG. 2, the structure of modern organizations tends to be far more complex and dynamic. FIG. 7 shows an example organization chart for a small organization with respect to a particular member of the organization. The particular member of the organization is represented by a cross-hatched disk 702, and other members of the organization are represented by numerically labeled disks, such as disk 704, with the numerical label referring to a particular group of members. Members of the organization may be represented by multiple disks in FIG. 7, other than the particular member 702. As shown in FIG. 7, the particular member of the organization 702 is a member of each of six different hierarchical groups within the organization. The particular member is the head, or root-node member, of group 4 (706 in FIG. 7) and occupies various intermediate positions within each of groups 1 (708 in FIG. 7), 2 (710 in FIG. 7), 3 (712 in FIG. 7), 5 (714 in FIGS. 7), and 6 (716 in FIG. 7). Were the president to decide to distribute an announcement to a particular group of members of the organization, it would be difficult for any member of the organization to determine to which particular members of the organization the information should be distributed. First, there are many different overlapping groups, as in the example shown in FIG. 7, so that many different lists of members of the organization would need to be maintained. Moreover, in modern organizations, the membership in the various groups tends to change quite rapidly, and new groups may be constantly formed and current groups removed with relatively high frequency.

Consider the complexity of the first information-distribution scenario discussed above with reference to FIG. 3. In the first step, the company president 302 would need to make a relatively complex decision with regard to possible trade-offs in distributing the message or announcement through different communications media and devices. Or, not wishing to undertake such a complex task, the company president may instead direct the administrator 306 to distribute a particular announcement to the members of a particular group under various time-of-delivery and other constraints. The administrator would need to first determine who the members of the group are and then, for each member, consider all the possible different communications media and devices by which the member can receive information and attempt to select the most appropriate communications medium and device or communications media and devices for the member with respect to the form of the announcement and many other considerations. The task would clearly be overwhelming, particular when requested frequently with respect to different types of information and groups.

In many cases, features and capabilities of modern communications technologies may somewhat collapse the problem space discussed above with reference to FIGS. 4-7, but they do not systematically and efficiently collapse the problem domain to a point of feasibility. For example, it is currently possible to link different types of devices to one another so that a message sent to one device is automatically forwarded to others. However, problems remain. As one example, one may wish to distribute a fairly complex, lengthy text message with additional attachments, including photographs. Such information may be readily transmitted via Internet-based email, but it is essentially impossible using instant messaging or text messaging. Therefore, even though a member not able to directly receive the email message might receive indications that the email message was sent, via instant messaging or text messaging, the member would still not receive the information that is intended to be distributed to the member. As another example, modern database technology can provide relatively easily administered and accessed listings of the members of each of the groups within an organization. However, even with such systems at hand, it may nonetheless be time-consuming and annoying to access such lists in order to transmit information. In certain cases, communications media and devices provide for automatic transmission of information to groups of members within an organization. For example, many email applications allow users to create or import named lists of members so that an email can be sent to each member of the list in one operation. However, the email-listing feature may still require time-consuming and expensive administration, on an organization-wide level, and does not address the many other dimensions of intra-organization communication complexities. Furthermore, such disparate technical features, when employed in an organization, may lead to security breaches and other opportunities for misuse or mischief. Because of the number of different types of communications media and devices through which each member of an organization may receive messages and other information, and the relatively high frequency at which new communications media and devices may become available for a particular member, and existing communications media and devices may, as a result, become less desirable or even no longer available, centrally managing even the member contact information may represent a formidably complex problem. A centralized repository for contact information is needed, but, at the same time, centralized collection and management of this information may represent an enormous cost and time burden to the organization.

To address the above-described problems with current intra-organization communications, and many additional problems, embodiments of the present invention provide for flexible, easily administrated, and easily monitored automated systems for interconnecting members of an organization through any of many different communications media and devices. FIGS. 8A-B illustrate, at a schematic level, an automated communications system that represents one embodiment of the present invention. The automated system that represents an embodiment of the present invention includes a large number of different types of communications receivers, such as receiver 802 in a column of receivers 804 shown on the left side of FIG. 8A. The messages or other types of information received through these receivers are queued to received-message queues, shown in a column of received-message queues 806 in FIG. 8A. There is at least one received-message queue paired with each receiver. Received messages are de-queued from the received-message queues and processed by an input-processing component or subsystem 808. The input-processing subsystem 808 accesses various system services through interfaces provided by a system-services component 810 discussed below with reference to FIG. 8B. Once the received messages have been processed by the input-processing subsystem 808, corresponding messages for forwarding to other users and/or reply messages are queued to one or more internal message queues 812-814. Subsequently, a post-processing subsystem 816 de-queues messages from the internal message queues 812-814, processes these messages, and queues fully processed messages corresponding to messages queued to the internal message queues to transmitter queues, such as transmitter queue 820 in a column of transmitter queues 822 shown on the right side of FIG. 8A, from which the messages for transmission are de-queued and transmitted by transmitters, such as transmitter 824 in the column of transmitters 826 shown in FIG. 8A.

The receivers 804 can be any type of communications receiver, including, as examples, simple-mail-transport-protocol (“SMTP”) servers connected to the Internet, voice-communications servers and modems connected to public switched telephone networks (“PSTN”), extensible-messaging-and-presence protocol (“XMPP”) servers connected to the Internet, short message peer-to-peer protocol (“SMPP”) servers connected to the Internet, hypertext transport protocol (“HTTP”) servers connected to the Internet, transmission-control-protocol/Internet-protocol (“TCP/IP”) servers connected to the Internet, and other types of message-receiving servers interconnected to wireless communications receivers, LAN devices, or other appropriate communications media. Similarly, the transmitters may be any of a wide variety of different types of transmission devices, including the various types of servers associated with physical transmission devices connected to appropriate communications media. In many cases, although the receivers and transmitters are shown as separate components in FIG. 8, the receivers and transmitters may instead he collocated within a transceiver-type component, such as an SMPP server connected to a public telephone network that both receives and transmits SMS messages. The various receivers, transmitters, and transceivers can receive and transmit many different types of messages and information, including text-based email, extensible-mark-up-language (“XML”) -encoded messages and information, instant-messaging messages, multipurpose-Internet-mail-extensions (“MIME”) documents, multimedia-messaging-service (“MMS”) messages, and even telemetry communications between various types of devices and systems via machine-to-machine (“M2M”) communications. The automated communications system that represents one embodiment of the present invention can be, at a high level, considered to be a very high-bandwidth, intelligent, queue-based communications crossbar that receives messages and other information from a variety of different information sources, processes these messages according to internally stored and managed information, and either forwards the messages or transmits reply messages to a large number of different types of information sinks. The above-mentioned types of messages and other information, communications media, and protocols are examples, but arc not intended to, in any way, constrain the types of messages and other information, communications media, and protocols that are supported by automated communications systems that represent embodiments of the present invention. Automated communications systems that represent embodiments of the present invention arc generally designed and implemented to allow for straightforward inclusion and adaption to receiving, transmitting, and processing of any type of information by any communications medium and protocol. Automated communications systems that represent embodiments of the present invention therefore provide a full crossbar-like interconnection between each and every communications medium, protocol, and device supported by the automated communications systems. As discussed below, it may be necessary for messages and other information received from a first communications medium according to a first protocol to be processed and adapted for transmission to a second communications medium according to a second protocol. This processing and adaptation may result in a loss of information, due to incompatibilities of certain devices, media, and protocols to transmit and/or receive certain types of messages and information. However, even when the content of a message cannot be forwarded from a first communications medium/device to a second communications device/medium, the fact that the information has been sent can generally be transmitted, so that a user or member is notified to receive the information on another of the user's compatible devices.

FIG. 8B shows the systems services component 810 briefly mention with respect to FIG. 8A. The systems services component 810 is a computational component that resides in, and executes on, one or more computational platforms, such as servers, distributed computer systems, and other such computational platforms. The system services component includes a routing-and-message-forwarding subsystem 830, a database and database interface 832, a number of application servers 834-837, and a management-and-configuration-services subsystem 840. All of these subsystems and application servers execute within an execution environment provided by one or more operating systems 842 that interface to one or more hardware platforms 844.

The database and database interface subsystem (832 in FIG. 8B) contains a large amount of information with regard to organizations, the structures of organizations, members within organizations, communications media and devices, and many other types of stored information that allow for operation of the complex communications crossbar discussed above with reference to FIG. 8A. FIG. 9 illustrates certain types of stored data that represent organizations and organizational structures according to one embodiment of the present invention. The database contains one or more table entries or records for each organization for which intra-organizational communications is provided by the automated system, such as record 902. Similarly, the database contains records or table entries that represent groups of members within organizations, such as the group data structure 904 in FIG. 9. Finally, each user or member of the organization for which communications are provided by the automated communications system is represented by a data structure, such as data structure 906 in FIG. 9. These data structures, like those that represent organizations and groups, may be composed of one or more records or a number of rows in various different relational-database tables. In addition, the database stores various mappings between these entities. A first mapping 908 can be implemented in the form of a table, each entry or row of which associates a group data structure with an organization data structure. For example, the first entry in the table 910 associates the organization data structure 912 with group data structure 914. This first mapping table 908 thus associates each group data structure with an organization to which the group belongs. A second, similar mapping table 916 maps users to particular groups. There may be many additional such mapping tables. For example, an additional mapping table may directly map users to organizations, although this table is not strictly necessary, since the same information may be obtained from mapping tables 908 and 916. Another mapping table 920 shown in FIG. 9 maps groups to one another. This mapping table serves to organize groups into hierarchical group structures. In one implementation, each entry in the table, such as entry 922, represents a parent-child relationship between two groups. Entry 922, for example, represents the fact that group data structure 914 is the parent of group data structure 924 in a hierarchy of groups.

FIG. 10 illustrates, in more detail, the mapping of groups into group hierarchies within data stored in a database sub-system of an automated communications system that represents one embodiment of the present invention. In FIG. 10, 19 group data structures are shown in a horizontal row of group data structures 1002 at the top of FIG. 10, each group data structure including a numerical group number. Mapping table 1004 contains entries, each of which represents a parent-child relationship between two groups. The logical organization of groups into group hierarchies represented by the entries of the table 1004 is shown in a bottom row of group hierarchies 1006 in FIG. 10. Thus, a first group hierarchy 1008 includes a broadest or root group 1010 composed of two subgroups 1012 and 1014, the latter of which is in turn composed of two subgroups 1016 and 1018, the latter of which contains an additional subgroup 1020. This hierarchical group structure is represented, in table 1004, by entries 1022-1026. FIG. 11 illustrates hierarchical group structures that may be used to define complex structural features of an organization within data stored in a database sub-system of an automated communications system that represents one embodiment of the present invention. As shown in FIG. 11, hierarchical group structures may be used to define complex structural features of an organization. Furthermore, these hierarchical groups structures may be modified, or evolve, over time. For example, in FIG. 11, a first single-group group structure is formed that includes the set of members identified by the set of numerical member identifiers {1, 2, 10, 61, 84, and 85} 1102. Later, it may be decided to form two subgroups 1104 and 1106 within the group, and distribute a portion of the original members of the group between the subgroups and the highest-level group 1108. The highest-level group is considered to include all of the members explicitly associated with the highest-level group and any ancestor within the group hierarchy, as shown in set notation 1110 to the right of the highest-level group node. Addition of more members and a subgroup of one of the initial subgroups leads to the group hierarchy 1112 shown to the right of FIG. 11. In alternative embodiments of the present invention, different types of group structures may be defined.

Creation, modification, and deletion of groups, as well as the addition and deletion of members from organizations, and many other such management and configuration tasks are carried out by the management-and-configuration-services subsystem (840 in FIG. 8B). The management-and-configuration-services subsystem provides a management-and-configuration interface, through each of the various application servers, to users of the automated system to enable the users to create, modify, and delete members and groups of members with respect to the organizations to which they belong. In many communications systems that represent embodiments of the present invention, the particular management-and-configuration interface provided to a user may depend on access rights and privileges granted to the user by administrative or management users associated with organizations and groups within organizations. The application servers provide suitable formatting and presentation for each of the various types of communications-medium/device-type combinations supported by the automated communications system, as well as message-sending and message-receiving user interfaces that allow users to create and send various types of messages to individual users or groups of users within an organization.

An enormous advantage to organization to which communications services are provided by automated communications systems that represent embodiments of the present invention is that the information needed to transfer messages and information to each member of an organization is stored in a logically centralized database. This ameliorates and, in many cases, entirely removes the otherwise burdensome task of managing contact information and other information needed for exchange of information between members of an organization from the organization. The information is, of course, always available for inspection, editing, and other management operations through the management and configuration interfaces provided through various application servers to members of the organization by automated communications systems that represent embodiments of the present invention. An addition, the information can be largely entered into the system and updated as needed by individual members of the organization, rather than being collected from members and then entered by an administrator or other party. Because of the rapidly changing nature of modern communications, individual members are best positioned to ensure that their contact and other information is entered and updated to provide efficient and effective information flow. Furthermore, by providing members with the ability to specify communications devices and various parameters and constraints associated with receiving information through them, an organization can avoid the often difficult task of establishing and enforcing relatively inflexible and burdensome policies on members of the organization, although automated communications systems that represent embodiments of the present invention do support specification and distribution of intra-organizational communications policies to members, when needed and desired.

FIG. 12 illustrates portions of the fundamental data structures stored within the database and database-interface subsystem of an automated communications system that represents one embodiment of the present invention. FIG. 12 provides an example user or member data structure 1202, an example group data structure 1204, and an example organization data structure 1206. These data structures may be composed one or more records or one or more different entries in one or more different relational tables within various different types of databases. The example data structure shown in FIG. 12 is intended to illustrate only a portion of the various types of information that may be collected and stored for users, groups, and organizations. In FIG. 12, for example, the user data structure includes many different types of information to characterize a particular user, including the user's name 1208, the number of roles and indication of the types of roles performed by the user within the organization 1210, the user's age 1214, the user's gender 1216, the number of certifications and indications of which certifications are held by the user 1218, the number of communications devices through which the user can receive and transmit information to other members of the organization 1220 and a detailed list of those devices, device types, their addresses, and other information regarding the communications devices used by the user 1222, an indication of the languages with which the user can communicate 1224, and the user's home address 1226. Clearly, these are only but a few examples of the many different types of information that can be collected and stored to characterize users or members of an organization, which may additionally include one or more numeric identifiers for the user, various types of user preferences, and other such information. Similarly, a group may be associated with a group name 1230, a group type 1232, attributes the define the criteria for membership in the group 1234, a group sponsor 1236, the number of users with administrative privileges with respect to the group 1238, and various characteristics for information exchanged among group members 1240. Again, there are many additional types of information that can be collected and stored to characterize groups, including numeric group identifiers, various communications addresses associated with groups, and other such information. Similarly, an organization may be described by the organization's name 1250, address 1252, the service type provided by the communications system to the organization 1254, and many other different types of information.

The database and database-interface subsystem (832 in FIG. 8B) additionally contains stored data that describes device types and the various types of communication media through which the automated communications system can receive and transmit messages and other information. FIG. 13 illustrates additional device-type and communications-media information stored by the database and database-interface subsystem of an automated communication system that represents an embodiment of the present invention. As shown in FIG. 13, the database and database-interface subsystem may include a data structure for each of the different types of communications devices and associated protocols supported by the system, such as device-type data structure 1302. Similarly, the database and database-interface subsystem of an automated communications system that represents an embodiment of the present invention may store data structures, each of which represents a receiver, transmitter, or transceiver for a communications medium included within the automated communications system, such as data structure 1304. In addition, the database and database-interface subsystem stores various mapping tables, such as a mapping table 1306 that maps device types to one another to indicate the device types that are compatible or can receive and transmit information to one another via the automated communications system and mapping table 1308 that associates device types and protocols with receivers, transmitters, and transceivers and associated with communications media that can be accessed and used by the device types.

The database and database-interface subsystem (832 in FIG. 8B) of the automated communications system that represents an embodiment of the present invention additionally stores log information describing information exchanges between users as well as interaction of users with the configuration-and-management interfaces provided to users by the automated communications system. The management-and-configuration subsystem provides, through each of various application services, an interface to appropriately privileged users to allow the users to search for, list, and view the contents of historical records of the messages transmitted from one user to another, as well as the commands issued by users to the configuration and management subsystem. Unlike in many organizations today, the automated communications system that represents an embodiment of the present invention therefore provides a detailed record of intra-organizational information transfer and communications regardless of which communications media and communications devices the information was transferred through. This logging feature can be used to recover lost information, verify information transmission at subsequent points in time, and provide useful records for various regulatory management activities within the organization.

There are many different ways by which the automated communications system that represent embodiments of the present invention can be accessed by users. In many embodiments of the present invention, simple, efficient, and low-overhead methods are used for routing messages from user devices into the automated communications system. FIG. 14 illustrates a hierarchical group structure for an organization for which intra-organizational communications is provided by an embodiment of the present invention along with an associated addressing scheme that allows users to transmit messages and other information into the automated communications system for distribution by the automated communications system to other members of the organization. In FIG. 14, the structural organization for company ABC is shown, including a root node 1402, or overall group, and a variety of hierarchically arranged subgroups. In FIG. 14, an email address that can be used by a user to send an email to all of the members of a particular group or subgroups is shown above each node in the hierarchical group structure. In this scheme, like pathnames for files within a hierarchical file system, a particular group or subgroup is specified by a list of subgroup and group names, separated by “.” characters, in lowest-level-to-highest-level order, representing a path to the particular group or subgroup in the hierarchical structure. A user need not remember all of these group names, but may instead employ a suitable application-server interface, displayed on the user's device, to view a hierarchical representation of the groups within an organization and select a particular group to which to send a next message. The appropriate email address is then entered as the “To:” address in the email message by the application server. Similar organization and group addressing schemes are used for each of the various other types of communications media and devices supported by an automated communications service that represents an embodiment of the present invention. For an example, various groups and subgroups within an organization may be associated with different telephone numbers which a user can call, either directly or through an application-server interface, to distribute voice mails to the members of the group.

FIGS. 15A-B illustrate two different operational modes for automated communications systems that represent embodiments of the present invention. As shown in FIG. 15A, the automated communications system, including the queue-based communications crossbar and services system shown in FIGS. 8A-B, can reside as a component within a mobile-operator network or mobile-operator networks to provide intra-organizational communications through ISPs and a mobile-operator network interface. Alternatively, as shown in FIG. 15B, the automated intra-organizational communications system that represent embodiments of the present invention may be separate, stand-alone entities and businesses 1510 that provide intra-organizational communications services directly to ISPs and to mobile-operator networks to which user's devices are connected.

FIG. 16 illustrates a typical hardware platform for an automated communications service that represents an embodiment of the present invention. The platform includes the various transmitters, receivers, and transceivers 1602-1604 for the communications media 1606-1608 supported by the automated communications system. Messages received by these transceivers are transmitted, via a local area network 1610, to servers or other computational platforms 1612-1614 on which the queue-based crossbar system and services components are implemented.

FIG. 17 illustrates a distributed automated communications system that represents an embodiment of the present invention. As shown in FIG. 17, incoming and outgoing messages may be received and transmitted by a number of proxy servers 1702-1704 that forward messages and receive messages, through load-balancing nodes 1706 and 1708, to geographically separate clusters of application servers 1710 and 1712 and geographically separate clustered database engines 1714 and 1716.

Next, control-flow diagrams are provided to illustrate the functionality embodied in each of the major subsystems of an automated communications system that represents an embodiment of the present invention, shown in FIGS. 8A-B. FIG. 18 provides a control-flow diagram for the input-processing subsystem of an automated communications system that represents an embodiment of the present invention. The input-processing subsystem is generally implemented as a continuous loop in which the input-processing subsystem waits, in step 1802, for a next input event. Input events include notification of reception and queuing of new messages from any of the various different communications media and associated transceivers through which the automated communications system receives information from users. When such an event occurs, the input-processing subsystem accesses each input queue in the for-loop of steps 1804-1812. For each input queue, the input-processing subsystem handles each message queued to the input queue in the inner while-loop of steps 1805-1811. For each message queued to a currently considered input queue, the input-processing subsystem dequeues the message from the queue in step 1806 and calls the routing-and-message-forwarding subsystem (830 in FIG. 8B) to process the message. The routing and message-forward subsystem responds with a list of or more reply and/or forwarding messages corresponding to the received message, which the input-processing subsystem processes in the innermost for-loop of steps 1808-1810. For each message in the list of reply and/or forwarding messages, the input-processing subsystem queues the message to an appropriate internal message queue (1812-1814 in FIG. 8A). There may be many internal message queues in an automated communications system in order to geographically distribute message-queue-based processing and/or in order to partition outgoing messages in various ways, including according to time to transmission, according to the general class of communications media to which the message are to be transmitted, and according to various other criteria. Thus, the input-processing subsystem is responsible for managing incoming messages and calling the system services subsystem to generate appropriate reply and/or forwarding messages corresponding to input messages that the input-processing subsystem then queues to the message queues for delivery to users.

FIG. 19 provides a control-flow diagram for the routing-and-message-forwarding subsystem of the system services component of an automated communications system that represents an embodiment of the present invention. In step 1902, the routing-and-message-forwarding subsystem receives a next message from the input-processing subsystem (808 in FIG. 8A). In step 1904, the routing-and-message-forwarding subsystem accesses the database (832 in FIG. 8B) in order to authorize the user from which the message was received and verify that the group or recipient to which the message is addressed exists, that the user is authorized to send messages to the group or recipient, and to carry out other authorization and verification tasks. When the user is not authorized to send messages within the organization, when the group or recipient cannot be verified, or when other such errors are detected, in step 1906, then the routing-and-message-forwarding subsystem invokes any of various different types of error-handling procedures 1908. These may include logging the unauthorized attempt to access the automated communications system and returning some type of error message to the sender of the message. Next, in step 1908, the routing-and-message-forwarding subsystem determines whether or not the message is intended to be forwarded to other users of the organization, in which case a routing routine 1910 is called to return a list of forwarding messages to the input-processing subsystem in step 1912, and, when the message is instead directed to an application server as part of requesting or responding to a management or configuration interface provided by the management-and-configuration service subsystem (840 in FIG. 8B), the routing-and-message-forwarding subsystem forwards the message to the appropriate application server in step 1914 (834-837 in FIG. 8B) and returns any response received from the application server, in step 1916, to the input-processing subsystem in step 1918.

FIG. 20 is a control-flow diagram for the routing routine called in step 1910 of FIG. 19 according to one embodiment of the present invention. The routing routine first determines the group to which the message is to be sent, in step 2002. Then, in the for-loop of steps 2004-2013, the routing routine prepares a message for forwarding to each user in the group to which the sender of the message intends the message to be forwarded. In step 2005, the routing routine determines the set of devices to which the message can be forwarded for the currently considered user or member. This set of devices may be, for example, all devices owned by the member, as determined from a member data structure accessed from the database, which are compatible with the device and/or communications medium from which the initial message was received by the automated communications system. Then, in an inner for-loop of steps 2006-2008, the routing routine applies one or more filters to the initial set of devices in order to select one or a few devices for the recipient user to which the message can be forwarded. These filters correspond to the many different types of considerations discussed above with reference to FIGS. 5 and 6. For example, one filter may incorporate the time-of-day information for the user and the user's devices, as illustrated in FIG. 5. Other filters may incorporate many other considerations, such as the type of information that is being sent, the location of the recipient, date, and many other such considerations. The filters may be implemented as a set of logic propositions, complex decision trees, or in many other ways. Once the initial list of devices has been filtered to produce a final list of devices for the user, then, in the for-loop of steps 2009-2012, the routing routine prepares a message for each device of the recipient, including indications of the appropriate transmitter and message queue for queuing the message and adds the message to a list of messages. When messages have been prepared for all devices of all users, then the entire list of messages is returned to the routing-and-message-forwarding subsystem in step 2016.

FIG. 21 provides a control-diagram for the post-processing subsystem of an automated communications system that represents one embodiment of the present invention. The post-processing subsystem, 816 in FIG. 8A, dequeues messages from the message queues for queuing to individual transmitter queues associated with transmitters or transceivers. In the outer for-loop of steps 2102-2111, the post-processing subsystem continuously examines each of the internal message queues. In the inner for-loop of steps 2103-2110, the post-processing subsystem dequeues all messages ready for forwarding or transmission from the currently considered message queue. In step 2104, the post-processing subsystem dequeues the next message from the currently considered message queue and determines whether or not any translation is required for the message. If translation is needed, as determined in step 2105, the message is translated in step 2106 in a way appropriate for the type of device, communications medium, group, and recipient to which the message is to be transmitted. In step 2107, the post-processing subsystem determines whether any attachments need to be attached or appended to the message and, if so, adds or appends the appropriate attachments in step 2108. In step 2109, the post-processing subsystem queues the final, translated and completely post-processed message to the appropriate transmitter queue.

A User, Group, and Destination-Communications-Address Mapping Subsystem that Represents One Embodiment of the Present Invention

FIGS. 22A-B illustrate additional detail regarding message reception by the automated communications system discussed above with reference to FIGS. 1-21 that represents one embodiment of the present invention. In particular, FIG. 22A shows a receiver 2202, one of the many receivers shown in column 804 of FIG. 8A, and a received message queue 2204 associated with the receiver, one of the many received-message queues shown in column 806 of FIG. 8A. The receiver 2202 receives input messages, as shown in FIG. 22A, from a number of different users 2206-2210. As discussed above, a user generally directs a message to the automated communications system for delivery to a group of users. In FIG. 22A, the receiver receives two messages from user a directed to groups 1 and 2, 2206 and 2208, two messages from user c directed to groups 4 and 2, 2207 and 2209, and a single message from user b directed to group 3 2210. As discussed above, the receiver 2202 receives the messages and processes the messages by storing the received messages in an electronic memory and by entering message descriptors for the received messages into the received message queue.

In general, as shown in FIG. 22A, it would be desirable for the message descriptors, an example of which is shown as message descriptor 2216 in FIG. 22A, to include an indication of the user from which the message was received 2218, an indication of the group to which the message is directed 2220, and a reference to the stored message in memory 2222. However, in many practical cases, the receiver may have neither the information needed to determine the group to which the message is directed or the information needed to determine the user from which the message is received. In certain implementations of an automated communications system, messages, from whatever type of device they are received, are associated with a header that contains sufficient header information for the receiver to determine from which user the message was received and to which group the message is directed. However, this involves imposing structure onto messages, including messages received via communications media that do not support message headers and inclusion of header information within messages. Furthermore, various types of receivers may be standard, commercially available receivers and receiving systems that lack that the flexibility and/or processing capability to access headers and translate header information into a message descriptor that includes indications of the user who sent the message and the group to which the message is directed.

FIG. 22B illustrates a simple and practical approach to initial reception of messages by an automated communications system that represents one embodiment of the present invention. In this approach, the receiver 2220 receives messages from users 2222 in the normal format for the communications medium or media supported by the receiver. In many cases, including for messages received over the public switched telephone network (“PSTN”), the Internet, and other communications media, the receiver can determine the a communications address from which the message was received as well as the destination communications address, bound to the receiver, to which the message was sent. For example, a mobile-telephone modem that receives a text message from a user via the user's mobile telephone can determine the telephone number from which the message was sent and the telephone number to which the message was sent. Similarly, email messages received through a communications port include indications of Internet address of the sender and the Internet address to which the email message is directed. Therefore, in the simple approach illustrated in FIG. 22B that represents one embodiment of the present invention, the receiver 2220 stores a received message in memory and queues a message descriptor 2224 to the received message queue 2228 that includes the address from which the message was sent 2230 and the address to which the message is directed 2232. It is then the task of the input processing component (808 in FIG. 8A) of the automated communications system, when processing message descriptors, to determine from which user the message was received and to which group the message is directed. Alternatively, when a receiver is programmable and has sufficient computational bandwidth to carry out initial processing steps for received messages, a receiver may use the communications addresses, shown in included in message descriptor 2224 in FIG. 22B, to determine the user and group in order to prepare a message descriptor, such as message descriptor 2216 shown in FIG. 22A. In either case, the sending user and target group are determined from sent-from and sent-to communications addresses rather than from header information added to the body of the received messages to specify the user identity and the target group.

In order to identifier a particular user from a sent-from communications addresses and determine the target group of a message from a sent-to communications addresses, or destination communications address, without employing user-and-group-identifying header information or other information included within messages, a mapping that associates communications addresses with users and groups can be used to provide input-processing components, receivers, and/or other components of an automated communications system with the ability to determine the user and group associated with a message from the communications addresses associated with the message.

FIGS. 23A-D illustrate possible mappings of communications addresses to users and groups within an automated communications system that represents an embodiment of the present invention. In FIG. 23A, a small set of users, shown in column 2302, and a small set of groups, shown in column 2304, are used to describe a first mapping that associates destination communications addresses with users and groups. It is assumed that users are uniquely mapped to sent-from communications addresses, in this discussion. In alternative embodiments of the present invention, that assumption may be relaxed when the particular user who sent a message from a sent-from communications address can be distinguished from all other users who send messages from the sent-from communications address. In FIG. 23A, solid arrows, such as arrow 2306, indicate groups to which users send messages. Dashed arrows, such as dashed arrow 2308, indicate potential communications paths between users and groups which are not actually used by users. For example, in the users-to-groups mapping shown in FIG. 23A, user a 2310 send messages to groups 1 (2312 in FIG. 23A), 3 (2314 in FIG. 23A), and 4 (2316 in FIG. 23A), but potentially could send messages to the remaining groups 2 and 5-8 (2318 and 2320-2323 in FIG. 23A). Because, in the example shown in FIG. 23A, there are six users and eight groups, there are potentially 6×8=48 potential communications paths between the users and the groups. In a first mapping that associates users, groups, and destination communications addresses, a different destination communications address is associated with each actual or potential communications path between a user and a group. In other words, the 48 destination communications addresses 2326 are mapped one-to-one with the solid and dashed arrows that indicate actual and potential communications paths between users and groups. Thus, the receiver (2220 in FIG. 22B) would need to support or receive messages through 48 different communications addresses bound to or associated with the receiver. In the case of text messaging, the receiver, a wireless modem, would need to be configured for receiving text messages at 48 different cell-phone telephone numbers. Because the receiver can determine the sender's telephone number as well as the telephone number, associated with the receiver, to which the message was sent, and because the two telephone numbers uniquely define a particular communications path between a user and group, the telephone numbers can be included in a message descriptor to allow subsequent determination of the user and group. Because both actual and potential paths are uniquely associated with communications addresses, the logic needed to determine a user and group from a sent-from and sent-to communications-address pair is straightforward, and the associations between users and groups that define the communications paths can be encoded in a simple two-dimensional table. Similarly, in the case of email messages sent to email addresses, the system may be configured to support 48 local addresses, each representing a user and group pairing, associated with an email domain name, such as a.1@system.com, a.2@system.com. . . . , f.8@system.com.

Unfortunately, the dense, cross-product-like mapping shown in FIG. 23A for mapping users, groups, and destination communications addresses is relatively inefficient with respect to the destination-communications-addresses resource. In the case of telephone numbers, each telephone number at which a receiver is configured to receive text messages needs to be purchased from a communications company. Telephone numbers are therefore an expensive resource, and a resource that requires a significant time and computational effort to obtain. Setting up large numbers of users within an email domain is significantly less costly and less time-consuming than acquiring telephone numbers from an external vendor or supplier, but may still involve significant configuration and maintenance overheads. Thus, the dense, one-to-one mapping illustrated in FIG. 23A provides for determination of the user who sent a message and the target group for the message based on sent-from and sent-to communications addresses but inefficiently uses the potentially expensive destination-communications-addresses system resource.

FIG. 23B illustrates, using the same illustration conventions used in FIG. 23A, a second, more efficient mapping that maps users, groups, and destination communications addresses within an automated communications system that represents an embodiment of the present invention. In the mapping shown in FIG. 23B, only the actual communications paths between users and groups are considered. In other words, in contrast to the mapping shown in FIG. 23A, the dashed-line arrows representing potential but unused communications paths between users and groups are not considered and not shown. Because there are only 16 actually used communications paths, each represented by a solid arrow, such as solid arrow 2330, only 16 communications addresses 2332 are needed to uniquely associate users, groups, and sent-to, or destination, communications addresses. This represents a significant savings in communications addresses that need to be acquired and bound to a receiver. In many automated communications systems, such as those described above with reference to FIGS. 1-21, there may be stored rules, stored information, or stored usage-monitoring data that allows the automated communications system to determine actual communications paths between users and groups, in order to achieve the communications-addresses efficiency illustrated in FIG. 23B by mapping only actually used communications paths to destination communications addresses.

FIG. 23C shows a third mapping that associates users, groups, and communications addresses in an automated communications system that represents one embodiment of the present invention. In FIG. 23C, which uses the same illustration conventions as used in FIGS. 23A and B, letter labels, such as the label “x” 2340, are associated with each actual path between a user and group. Thus, user a 2342 communicates with group 1 (2344 in FIG. 23C) via path 2340, labeled “x,” communicates with group 3 (2346 in FIG. 23C) via path 2348 labeled “y,” and with group 4 (2350 in FIG. 23C) via path 2352 labeled “z.” Destination communications addresses associated with communications paths 2340, 2348, and 2352, representing sending of messages from user a to groups 1, 3, and 4, can be reused for other users, since there is no ambiguity with respect to the user who has sent a message, since the user's communications address is available to the receiver. In other words, the destination communications addresses bound to the receiver can be directly associated with groups, rather than user/group pairs. However, even better efficiency in the use of the destination-communications-addresses resource is obtained by recognizing that the automated communications system need acquire and associate with the receiver only a number of destination communications addresses equal to the maximum number of groups that any of the users sends messages to. This efficiency mapping strategy is illustrated in FIG. 23C. As noted above, the letters “x,” “y,” and “z” are associated with communications paths between user a and three of the eight groups. One can next consider user b 2354 and reuse the same labels “x,” “y,” and “z” to label communications paths between user b 2354 and groups 3 2346, 6 2356, and 7 2358. These labels can again be reused, in turn, for users c 2360, d 2362, and e 2364. User f 2366, in contrast with the previous users, sends messages to four groups: group 4 (2350 in FIG. 23C), group 5 (2368 in FIG. 23C), group 7 (2358 in FIG. 23C), and group 8 (2370 in FIG. 23C). Thus, a new label “v” is needed to label the final communications path 2372 between user f 2366 and group 8 2370. Because the user communicates with more than four groups, only four different communications addresses 2374 are needed for the mapping illustrated in FIG. 23C that allows unambiguous determination of users and groups associated with a message from the sent-from and sent-to communications addresses associated with the message. In FIG. 23C, the destination communications addresses are represented by the character labels x, y, z, and v used to label various communications paths between users and groups. This mapping can be represented by a two-dimensional table 2376, in each cell of which the group corresponding to a user and a destination communications address is shown. Thus, for example, when a message is received from user h through destination communications address y, then the message is sent from user b to group 6 2378. Associated with a table are circled numbers, such as circled number 2380, indicating the number of groups to which each user sends messages. The maximum number of groups to which any particular user sends a message is shown below the table and labeled “max” 2382.

FIG. 23D shows a fourth mapping that associates users, groups, and communications addresses within an automated communications system that represents an embodiment of the present invention. FIG. 23D uses the same illustration conventions used in FIGS. 23A-C. In the mapping shown in FIG. 23D, certain of the numeric labels of communications paths are primed, such as the label “x′” 2384 in FIG. 23D. The primed labels indicate that a particular label already used for one communication path between a particular user and a group is used again for another communication path between the particular user and another group. The use of the primed labels is made possible by recognition that the target group associated with messages can be distinguished by some additional criteria or information. Thus, in assigning labels to communications paths emanating from user a 2385, the label “x” is used to label the first communications path 2386, and the same label, with an added prime, is used to label a second communications path 2387, when it is recognized that messages directed from user a to group 1 can he distinguished from messages directed by user a to group 3 based on some additional criterion or information known to the automated communications system. In this case, a single destination communications address and the additional criterion or information can be used to uniquely identify the target group. The third communications path 2387 is labeled with label “y” when it is determined that messages directed from user a to group 4 cannot be distinguished by some additional criterion or information from messages directed by user a to groups 1 and 3. The fact that two of the communications paths emanating from user f 2389 correspond to communications paths for which the target group for messages can be distinguished by some other criteria, other than destination communications addresses, and are therefore labeled with labels “z” 2390 and “z′” 2391, renders the fourth communications address, labeled “v” in FIG. 23C, as no longer needed. Thus, rather than using four communications addresses, as shown in FIG. 23C, the mapping employed and illustrated in FIG. 23D can be implemented using only three destination communications addresses 2392. In this case, a single criterion or additional type of information is used to distinguish messages sent to the destination communications address corresponding to label “z” from user f. Thus, the table used to encode the association between users, groups, and destination communications addresses (2376 in FIG. 23C) is partitioned into two tables 2393 and 2394 in FIG. 23D. The first table 2393 provides associations between users, groups, and destination communications addresses when a first condition, criterion, or information value pertains, and the second table 2394 provides associations between users, groups, and destination communications addresses when a second criterion, condition, or information value pertains.

There are many possible additional criteria and conditions that allow messages sent from a particular user to a particular destination communications address to be partitioned into messages sent to each of two or more different groups. For example, it may be the case that the particular user sends only long, formatted messages to a first group and only very short text messages to another group. Therefore, the automated communications system, upon receiving a message through a destination communications address from the particular user can route the message to the appropriate target group based on the message length. In other cases, the user may send messages to a first group during certain portions of the day and send messages to a second group during other portions of the day that do not overlap with the portions of the day during which the user sends messages to the first group. Similarly, a user may send messages to a first group only on certain days of the week, and send messages to another group on other days of the week that do not overlap with the days of the week on which the user sends messages to the first group.

Thus, over the range of different types of mappings illustrated in FIGS. 23A-D, the 48 destination communications addresses needed for dense one-to-one mapping between communications paths and destination addresses is reduced to only three communications addresses for the mapping shown in FIG. 23D. To summarize, a first reduction is obtained by mapping only actually used communications paths to destination communications addresses, as illustrated in FIG. 23B. Additional efficiency in the use of destination communications addresses is obtained by reusing destination communications addresses for different users, in which the different users can be distinguished by the sent-from communication address that can be obtained by a receiver. Finally, additional communications-address savings are obtained, in the mapping shown in FIG. 23D, by reusing destination communications addresses for particular users, when the target group for messages can be determined by other criteria, conditions, or information.

FIG. 24 illustrates a user, group, and destination-communication-address mapping subsystem of an automated communications system that represents one embodiment of the present invention and that allows for efficient use of destination-communication-address resources. Components of the user, group, and destination-communication-address mapping subsystem include an unallocated-addresses buffer 2402, an allocated-addresses pool 2404, one or more assignment tables 2406, such as the assignment table 2376 shown in FIG. 23C or the assignment tables 2393-2394 shown in FIG. 23D, and logic modules for obtaining communications addresses from, and returning destination communications addresses to, an external communications-address source 2408, for monitoring usage and load balancing across allocated communications addresses and periodically remapping users and groups to communications addresses 2410, and for assigning users to groups via communications-address assignments 2412. A receiver, received-message-queue handler, or input-processing component 2414 of all automated communications system can access the assignment tables 2406 in order to determine the group to which a message is sent from the sent-from and sent-to communications addresses associated with the message, as determined by the receiver. Various system services within the automated communications system (810 in FIG. 8A) 2416 can call the assignment-logic component 2412 in order to complete assignment or association of a user with a group.

It should be noted that all of the components shown in FIG. 24 include data and/or instructions stored in electronic memories and/or mass-storage devices within the automated communications system, with the stored instructions executed by processing components to carry out various tasks and operations. The unallocated-address buffer 2402 and allocated-address pool 2404 are both shown to be implemented as well-known circular queues to which addresses can be added and from which addresses can be removed.

The three logic components 2408, 2410, and 2412 of the user, group, destination-communications-address mapping subsystem shown in FIG. 24 are next described by control-flow diagrams. FIG. 25 provides a control-flow diagram for the address-acquisition and address-return logic component 2408 in FIG. 24 that represents one embodiment of the present invention. In step 2502, the logic component waits until a next time point for carrying out a check or monitoring of the unallocated-address buffer 2402 in FIG. 24. In step 2504, the number of unallocated addresses in the unallocated-address buffer is determined. When the number of unallocated addresses in the unallocated-address buffer is less than some low-threshold value, as determined in step 2506, then the logic component obtains an additional set of addresses from an external destination communications-address source and queues this set of addresses to the unallocated-address buffer in step 2508. When the number of unallocated addresses in the unallocated-address buffer is greater than some high-threshold number, as determined in step 2510, then the logic component returns a set of addresses from the unallocated-address buffer to an external communications-address source and removes the corresponding entries from the unallocated-address buffer in step 2512. Thus, the logic component 2408 monitors the number of destination communications addresses in the unallocated-address buffer 2402 in order to maintain the number of unallocated addresses between the low-threshold value and the high-threshold value. Destination communications addresses can then be immediately allocated by the user, group, destination-communications-address mapping subsystem, rather than incurring delays to obtain additional destination communications addresses from external communications-address sources. As one example, requesting additional destination communications addresses may involve interacting with a wireless provider, telephone company, or other external entity in order to obtain additional telephone numbers to associate with receivers within the automated communications system and configuring both the provider and the automated communications system to transmit and receive messages through the additional destination communications addresses. In many cases, provisioning of new destination communications addresses may involve relatively lengthy delays, and therefore the automated communications system maintains a set of spare, immediately-available destination communications addresses in the unallocated-address buffer 2402.

FIG. 26 provides a control-flow diagram for the logic component of the user, group, and destination-communications-address mapping subsystem of an automated communications system, shown as component 2410 in FIG. 24, that represents one embodiment of the present invention. This logic component continuously analyzes the usage of allocated destination communications addresses within the automated communications system in the do forever loop of steps 2602-2608 in FIG. 26. In analyzing usage of allocated destination communications addresses within the automated communications system, the logic component determines, in step 2604, whether any of the destination communications addresses currently allocated within the automated communications system are under-utilized or over-utilized to the extent that either a number of destination communications addresses can he deallocated and returned to the unallocated-address buffer or one or more new destination communications addresses needs to be allocated and moved from the unallocated-address buffer to the allocated-address pool. In step 2605, the logic component remaps users to groups and destination communications addresses either to free up a number of under-utilized destination communications addresses or to provide for allocation of additional destination communications addresses in order to decrease utilization of over-utilized destination communications addresses. In step 2606, following the remapping, addresses are either moved from the allocated-address pool to the unallocated-address buffer, in the case that destination communications addresses are deallocated, or moved from the unallocated-address buffer to the allocated-buffer pool, in the case that destination communications addresses are allocated. Otherwise, in step 2607, the logic component determines whether usage of destination communications addresses is unbalanced. If so, then, in step 2608, the logic component remaps user, group, destination-communications-address mappings in order to more evenly balance usage among the allocated destination communications addresses.

It should be noted that the usage and load-balance monitor component 2410 in FIG. 24 can be included in those automated communications systems in which the bindings or mappings between users, groups, and destination communications addresses can be seamlessly changed without adversely impacting users. This is possible when users interface with a graphical user interface or some other interface provided by the automated communications system to send messages to groups, rather than selecting particular destination communications addresses to which to send messages to groups. The interface provided by the automated communications system can therefore immediately respond to user, group, destination-communications-address mapping changes without impacting users by using the assignment tables to select appropriate destination communications addresses for a user.

FIG. 27 provides a control-flow diagram for the assignment logic component 2412 shown in FIG. 24 that represents one embodiment of the present invention. In step 2702, the logic component receives an indication of a user to assign to a particular group, an indication of which is also received. When the user is already assigned to the group, as determined in step 2704 by accessing the assignment tables (2406 in FIG. 24), then no further action is taken and the call to the assignment logic component returns 2706. Otherwise, the logic component determines whether the group to which the user is to be assigned is differentiable from another group to which the user is already assigned, in step 2708. When the group is differentiable then, in step 2710, the logic component creates an association between the user, group, and a destination communications address previously associated with another group that is differentiable from the new group in step 2710. When the group to which the user is to be assigned is not differentiable from another group to which the user is already assigned, then the number of groups to which the user is assigned is incremented, in step 2712. When the number of groups to which the user is assigned is greater than the number of allocated destination communications addresses in the allocated-address pool, as determined in step 2714, then a number of unallocated addresses are moved from the unallocated-address buffer to the allocated-address pool, in step 2716. In step 2718, a destination communications address not currently associated with the user is selected and, in step 2720, the selected destination communications address is associated with the user and group via addition of an entry to the assignment tables (2406 in FIG. 24).

Although the present invention has been described in terms of particular embodiments, it is not intended that the invention be limited to these embodiments. Modifications within the spirit of the invention will be apparent to those skilled in the art. For example, a user, group, destination-communications-address mapping subcomponent of an automated communications system can be implemented using a variety of different modular organizations, programming languages, logic-circuit-specification languages, data structures, control structures, and by varying other such implementation parameters. A user, group, destination-communications-address mapping may employ any combination of the efficiency-producing techniques discussed above with reference to FIGS. 23B-D as well as additional techniques for decreasing the number of destination communications addresses needed in order to unambiguously determine the groups to which users are directing messages using the sent-from and sent-to communications addresses associated with messages, along with other criteria, conditions, or information that may be available to the automated communications system. Communications addresses may be telephone numbers, email addresses, and any of a variety of other types of address used in other types of communications media.

The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the invention. The foregoing descriptions of specific embodiments of the present invention are presented for purpose of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments are shown and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents: 

1. An automated communications system comprising: an input-processing subsystem that processes the messages received from receiving components that each receives messages from a communications medium by forwarding each message directed to a group to a routing-and-message-forwarding component which queues one or more corresponding messages to one or more internal queues; a post-processing subsystem that dequeues messages from the one or more internal message queues, processes each message dequeued messages from the one or more internal message queues to generate one or more processed messages, and forwards the one or more processed messages to sending components that each sends processed messages to a communications medium; and a user, group, destination-communications-address subsystem that maintains information in an electronic memory that allows the input-processing system to determine a sending user and target group for each received message from sent-from and sent-to communications addresses associated with each received message.
 2. The automated communications system of claim 1 wherein the user, group, destination-communications-address subsystem maintains one or more assignment tables that encode mappings between users, groups, and destination communications addresses associated with receivers through which messages are received by the automated communications system.
 3. The automated communications system of claim 2 wherein the user, group, destination-communications-address subsystem maps destination communications addresses to user/group pairs corresponding to the groups to which each user sends messages.
 4. The automated communications system of claim 2 wherein the user, group, destination-communications-address subsystem maps destination communications addresses to user/group pairs corresponding to the groups to which each user sends messages, using particular destination communications addresses for multiple users.
 5. The automated communications system of claim 2 wherein the user, group, destination-communications-address subsystem maps destination communications addresses to user/group pairs corresponding to the groups to which each user sends messages, using particular destination communications addresses for multiple users and, when a number of groups to which a particular user sends messages can be distinguished by the automated communications system using one or more additional criteria, conditions, and information, using a particular destination communications address to represent all pairings between the user and the number of groups to which the user sends messages which can be distinguished by the automated communications system using one or more additional criteria, conditions, and information
 6. A method, implemented by computer instruction stored in the memory of an automated communications system and executed on a processor within the automated communications system, for efficiently using communications addresses bound to a receiver, the method comprising: determining a maximum number of groups, n, to which any user sends messages using user-to-group message forwarding services provided by the automated communications system; acquiring n communications addresses and binding them to the receiver to allow the receiver to receive messages via each of the n communications addresses; and for each user, for each group to which the user sends messages, associating one of the n communications addresses with the user and the group that has not yet been associated with the user.
 7. A method, implemented by computer instruction stored in the memory of an automated communications system and executed on a processor within the automated communications system, for efficiently using communications addresses bound to a receiver, the method comprising: determining a maximum number of groups, n, to which any user sends messages using user-to-group message forwarding services provided by the automated communications system; acquiring n communications addresses and binding them to the receiver to allow the receiver to receive messages via each of the n communications addresses; and for each user, for each set of groups to which the user sends messages that can be distinguished from one another when the automated communications system receives messages directed to a group within the set of groups by the user, associating one of the n communications addresses with the user and the group that has not yet been associated with the user.
 8. The method of claim 7 wherein, when the automated communications system receives a message directed to a group from a user, the automated communications system: determines sent-from and sent-to communications addresses associated with the message; determines the user corresponding to the sent-from communications address; and from the sent-to communications address and user, determines, from the associations of communications addresses with users and groups, to which set of groups the message is directed.
 9. The method of claim 8 wherein the automated communications system further determines, when the set of groups to which the message is determined to have been directed includes more than one group, to which group the message is directed based on additional criteria, conditions, or information that distinguish each group in the set of groups from the other groups in the set of groups.
 10. The method of claim 9 wherein the additional criteria, conditions, or information include: time of day that the message was received; date on which the message was received; day of the week on which the message was received; length of the message; format in which the message is encoded; and group-identification information included in the message. 